var StringUtil = new String();
/**
 * 根据长度截取字符串
 * 
 * @param content
 *            源字符串
 * @param len
 *            想要截取的长度
 * @param flag
 *            是否需要在长度60时强制折行（true：是；false：否）
 * @param lenNumber 每行显示长度
 * @return 截取后的字符串
 */
String.prototype.cutString = function(content, len, flag, lenNumber) {
    // 去除字符串两端的空格
    content = $.trim(content);
    // 判断是否需要折行参数是否为空 为空设置默认值
    if (flag == null) {
        flag = false;
    }
    // 判断每行显示长度是否为空 为空设置默认值
    if (lenNumber == null) {
        lenNumber = 56;
    }
    // 返回字符串
    var result = "";
    // 长度变量
    var length = 0;
    // 循环取得字符串中单个字符进行判断处理
    for (var index = 0; index < content.length; index++) {
        // 中文汉字处理方式
        if (content.charAt(index).match(/[^\x00-\xff]/ig) != null) {
            // 汉字长度累加2
            length += 2;
            // 累加后长度如果未超限，返回结果中拼上该汉字，如果超出限定，则舍掉这个汉字
            if (length <= len) {
                // 强制折行
                if (flag) {
                    // 在长度56时强制折行
                    if (length == (lenNumber + 1) || length == (lenNumber + 2)) {
                        result += '<br/>';
                    }
                }
                // 拼装返回结果
                result += content.charAt(index);
            }
        }
        // 英文字母等处理方式
        else {
            // 字母等长度累加1
            length += 1;
            // 强制折行
            if (flag) {
                // 强制折行处理
                if (length == (lenNumber + 1)) {
                    result += '<br/>';
                }
            }
            // 拼装返回结果
            result += content.charAt(index);
        }
        // 拼装返回结果
        if (length >= len) {
            return result + "…";
        }
    }
    // 返回截取后的字符串
    return result;
}
/**
 * 取得悬浮框的html代码
 * 
 * @param content
 *            显示的内容
 * @param nowrapFlag
 *            显示的内容是否包含换行 (true:自动换行,false:不自动换行)
 * @param paramWidth 自定义宽度
 * @return 悬浮框的html代码
 */
String.prototype.bindPopboxStyle = function(content, nowrapFlag, paramWidth) {
    // 判断是否传入宽度参数 如果没有传入则赋为默认宽度249
    if (! paramWidth) {
        paramWidth = 260;
    }
    else {
        content = content.replaceAll("<", "&lt;");
        content = content.replaceAll(">", "&gt;");
    }
    var tableHtml =
            '<table border="0" cellspacing="0" style="text-align: left;table-layout: fixed;" cellpadding="0" width="'
                    + paramWidth + '">';
    tableHtml += '<tr>';
    tableHtml += '<td height="21" width="6"><img height="21" width="8" src="web/images/out_t_l.png"></td>';
    tableHtml += '<td class="out_t" height="21"><img height="21" width="23" src="web/images/out_c_j.png"></td>';
    tableHtml += '<td width="6"><img height="21" width="6" src="web/images/out_t_r.png"></td>';
    tableHtml += '</tr>';
    tableHtml += '<tr>';
    tableHtml += '<td class="out_left"> </td>';
    tableHtml += '<td ' + (nowrapFlag == true ? '' : 'nowrap="nowrap"') + 'class="out_c">';
    tableHtml += content;
    tableHtml += '</td>';
    tableHtml += '<td class="out_right"> </td>';
    tableHtml += '</tr>';
    tableHtml += '<tr>';
    tableHtml += '<td height="8"><img height="8" width="8" src="web/images/out_b_l.png"></td>';
    tableHtml += '<td class="out_b"> </td>';
    tableHtml += '<td><img height="8" width="6" src="web/images/out_b_r.png"></td>';
    tableHtml += '</tr>';
    tableHtml += '</table>';
    return tableHtml;
}
/**
 * 替换字符串 替换全部
 * @return string 替换后的字符串
 */
String.prototype.replaceAll = function(s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2);
}
/**
* 将双引号转换为“&quot;”,小于号转换为“&lt;”,大于号转换为“&gt;”
* @param content 待转换内容
* @param isTransform 是否需要转换“<>”
* @return String 转换后内容
* @author 阳自然
*/
String.prototype.transformStr = function(content, isTransform) {
    // 判断传入是否为空
    if (content != "" && content != null) {
        // 替换掉&符号
        content = content.replaceAll("&", "&amp;");
        // 传入值不为空执行转换
        content = content.replaceAll("\"", "&quot;");
        content = content.replaceAll("'", "&acute;");
        // 如需转换
        if (isTransform == true) {
            // 小于号转换为“&lt;”
            content = content.replaceAll("<", "&lt;");
            // 大于号转换为“&gt;”
            content = content.replaceAll(">", "&gt;");
        }
    }
    return content;
}
/**
* 反转 将双引号转换为“&quot;”,小于号转换为“&lt;”,大于号转换为“&gt;”
* @param content 待转换内容
* @param isTransform 是否需要转换“<>”
* @return String 转换后内容
* @author 阳自然
*/
String.prototype.unTransformStr = function(content, isTransform) {
    // 判断传入是否为空
    if (content != "" && content != null) {
        // 替换掉&符号
        content = content.replaceAll("&amp;", "&");
        // 传入值不为空执行转换
        content = content.replaceAll("&quot;", "\"");
        content = content.replaceAll("&acute;", "'");
        // 如需转换
        if (isTransform == true) {
            // 小于号转换为“&lt;”
            content = content.replaceAll("&lt;", "<");
            // 大于号转换为“&gt;”
            content = content.replaceAll("&gt;", ">");
        }
    }
    return content;
}
/**
* 从一个字符串(content)中截取几个(len)字符
* @param content 截取前的字符串
* @param len 截取字符数量
* @return String 截取后的字符串
* @author 杨磊
*/
String.prototype.cutCharacter = function(content, len) {
    // 记录累加字符长度
    var count = 0;
    // 返回结果
    var res = "";
    // 循环取得字符串中单个字符进行判断处理
    for (var index = 0; index < content.length; index++) {
        // 中文汉字处理方式
        if (content.charAt(index).match(/[^\x00-\xff]/ig) != null) {
            res = res + content.charAt(index);
            count = count + 2;
        }
        else {
            res = res + content.charAt(index);
            count = count + 1;
        }
        if (count >= len) {
            break;
        }
    }
    return res;
}
/**
* 计算一个字符串(content)的字符数
* @param content 字符串
* @return String 字符数
* @author 杨磊
*/
String.prototype.countStringCharacter = function(content) {
    // 记录累加字符长度
    var count = 0;
    // 循环取得字符串中单个字符进行判断处理
    for (var index = 0; index < content.length; index++) {
        // 中文汉字处理方式
        if (content.charAt(index).match(/[^\x00-\xff]/ig) != null) {
            count = count + 2;
        }
        else {
            count = count + 1;
        }
    }
    return count;
}